package br.com.pfc.application.controller.equipamentos;

import br.com.pfc.application.controller.BaseController;
import br.com.pfc.application.dao.EquipamentoDAO;
import br.com.pfc.application.service.equipamentos.EquipamentoService;
import br.com.pfc.model.Equipamento;
import br.com.pfc.model.Local;
import java.util.List;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;

/**
 *
 * @author mucceli
 */
@Scope(ScopeType.CONVERSATION)
@Name("equipamentoPesquisarAction")
public class EquipamentoPesquisarController extends BaseController {

    @In
    private EquipamentoDAO equipamentoDAO;
    @In
    EquipamentoService equipamentoService;
    private String paramTipoEquipamento;
    private Integer paramLocalEquipamento;
    private String paramModeloEquipamento;
    List<Local> listaLocais;
    private Integer localSelecionado;
    private DataModel listaEquipamentos;

    public DataModel pesquisaPorTipo() {
        List<Equipamento> resultadoPesquisa = equipamentoDAO.pesquisarPorTipo(paramTipoEquipamento);
        listaEquipamentos = new ListDataModel(resultadoPesquisa);
        if (resultadoPesquisa.size() == 0) {
            adicionarMensagemInformacao("Não foram encontrados resultados.");
        } else {
            adicionarMensagemInformacao("Foram encontrados " + resultadoPesquisa.size() + " usuarios.");
        }
        return listaEquipamentos;
    }

    public String setup() {
        listaLocais = equipamentoService.obterLocais();
        localSelecionado = null;
        return "equipamentos";

    }

    public List<Equipamento> pesquisar() {
        return equipamentoDAO.obterTodos();
    }

    /**
     * gets ans sets
     */
    public DataModel getListaEquipamentos() {
        if (paramTipoEquipamento != null) {
            if (paramTipoEquipamento.equals("")) {
                return listaEquipamentos = new ListDataModel(equipamentoDAO.pesquisar());
            }
            return listaEquipamentos = new ListDataModel(equipamentoDAO.pesquisarPorTipo(paramTipoEquipamento));
        } else if (paramModeloEquipamento != null) {
            return listaEquipamentos = new ListDataModel(equipamentoDAO.pesquisarPorModelo(paramModeloEquipamento));
        } else {
            return listaEquipamentos = new ListDataModel(equipamentoDAO.pesquisar());
        }

    }

    public void setListaEquipamentos(DataModel listaEquipamentos) {
        this.listaEquipamentos = listaEquipamentos;
    }

    public Integer getParamLocalEquipamento() {
        return paramLocalEquipamento;
    }

    public void setParamLocalEquipamento(Integer paramLocalEquipamento) {
        this.paramLocalEquipamento = paramLocalEquipamento;
    }

    public String getParamModeloEquipamento() {
        return paramModeloEquipamento;
    }

    public void setParamModeloEquipamento(String paramModeloEquipamento) {
        this.paramModeloEquipamento = paramModeloEquipamento;
    }

    public String getParamTipoEquipamento() {
        return paramTipoEquipamento;
    }

    public void setParamTipoEquipamento(String paramTipoEquipamento) {
        this.paramTipoEquipamento = paramTipoEquipamento;
    }

    public List<Local> getListaLocais() {
        return listaLocais;
    }

    public void setListaLocais(List<Local> listaLocais) {
        this.listaLocais = listaLocais;
    }

    public Integer getLocalSelecionado() {
        return localSelecionado;
    }

    public void setLocalSelecionado(Integer localSelecionado) {
        this.localSelecionado = localSelecionado;
    }
}
